using System;
using System.Collections.Generic;
using System.Drawing;
using Infragistics.Win.UltraWinGrid;

namespace PluginFrame
{
	public interface IGridViewService : IPcrFormControl
	{
		IPcrExperiment CurrentPcrExperiment { get; }

		UltraGridCell[] GetCurveSelectCells(int experimentIndex);

		void RefreshExperimentTabs(List<IPcrExperiment> pcrExperiments);

		void RefreshAnalysisResultColumn(bool isRefreshValue);

		void CancelSelectedCurves(int gridIndex);

		UltraGrid GetExperimentGrid(int gridIndex);

		void RefreshProjectListDisplay(int gridIndex, Guid experimentId);

		void RefreshAllReagentViewGridColumnWidth();

		void RefreshReagentViewGridTypeDisplay(string typeString);

		void RefreshReagentViewGridContent(UltraGrid grid, int gridIndex);

		void ChangeCurrentExperimentTabName(string name, string key);

		void RefreshGridViewAfterCellChanged();

		void DrawSelectionCellCurve(UltraGridCell cell, bool isReDraw);

		void SetAdditionalCurveVisible(IPcrCell pcrCell, int channelIndex, bool isVisible, Color color, bool isChannelCurve);

		void RefreshWellGridBackColor();

		void RefreshMenuItemDisplay();

		bool MaskUnUsedSubmodule(IPcrExperiment pcrExperiment);

		void EditWellProject(string menuText);

		void ClearWellProject();

		void RefreshMainGridColumnDisplay();

		void RefreshMainGridContentDisplay();

		void RefreshViewGridMultiCellsPlacement();

		bool ProccessChannelSelect(bool channelSelected, int channelIndex, bool isSingleSelection);

		int[] GetChannelStatus();

		void RefreshMainGridChannelStatus();

		void RefreshAllDisplayedCurveCell(bool isControlKey);

		void SelectAllCellsInViewGrid();

		void RefreshMeltingThresholdLine();
	}
}
